package ltd.hanamaki.review.unit.junit.paramter;

import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

/**
 * @Author Hanamaki
 * @Version 1.0
 */
/* 1. 将类运行的方式 改为 迭代运行 */
@RunWith(Parameterized.class)
public class AddTest_Paramter {

    static AddParamter addParamter;

    /* 5. 如何将 参数列表中 数据传递给 测试方法   ？
    *   需要使用 有参构造
    *  */

    int a,b, exp;

    public AddTest_Paramter(int a, int b, int exp) {
        this.a = a;
        this.b = b;
        this.exp = exp;
    }

    /* 2.初始化 测试类 */
    @BeforeClass
    public static void setUp() {
        addParamter = new AddParamter();
    }

    /* 3. 编写测试类 */
    @Test
    public void t() {

        int add = addParamter.add(a, b);
        System.out.println(add);

        Assert.assertEquals(exp,add);

    }

    /* 4 要获取参数数据 */
    /* 静态赋值 */
    @Parameters
    public static Integer[][] getContent() {
        return new Integer[][]{
                new Integer[]{1, 2, 3},
                new Integer[]{4, 4, 8},
                new Integer[]{5, 7, 13},
                new Integer[]{11, 12, 23}
        };
    }

}